A network interface controller can provide a host device with connectivity to a network, and allows the host device to engage in packetized communication over the network. The network interface controller can have multiple ports for transmitting and receiving data packets, and a processor to execute various processing tasks to provide the packetized communication via the network ports. These tasks may include, for example, receiving data from the computing device, generating packet payload, assembling packets to include header information, and transmitting the assembled packets into the network towards target destinations. These tasks may also include receiving packets from the network, extracting data from the received packets, and providing the data to the host device.
A network interface controller may implement queues to buffer pending packet processing tasks before their execution. The queues can store information or configuration data used for execution of these pending packet processing tasks. As network speed and bandwidth increases, the number of packets concurrently being processed by a network interface controller has also dramatically increased. To keep up with the network speed and bandwidth, network interface controllers have to increase their queue capacity to accommodate the increase in packet processing load. Bigger queue capacity also means that the queues are often implemented in high capacity memory devices. However, accessing the information or configuration data stored in these queues implemented in high capacity memory devices can add to the processing latency.